/*
* Copyright 2010 Competentum group
*
* Licensed under the GNU General Public License, Version 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.gnu.org/licenses/gpl.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.competentum.lib.engines
{
	import com.competentum.lib.exceptions.NoSuchEngineError;

	/**
	 * Factory creates AbstractEngines using its type  
	 * @author Demidov
	 * 
	 */	
	public class AbstractEngineFactory
	{
		public function AbstractEngineFactory()
		{
		}
		
		/**
		 * Returns AbstractEngine depending on the it's type
		 * @return AbstractEngine
		 */	
		public function getEngine(type:String):AbstractEngine {
			/*
				Override this method and switch type and return appropriate engine 
			*/
			throw new NoSuchEngineError("{AbstractEngineFactory} - getAbstractEngine no item with such type");
		}
	}
}